#!/usr/bin/with-contenv bashio

# Gitee API 相关函数

# 获取仓库文件列表
get_repo_files() {
    local repo_url=$1
    local repo_path=$(echo "${repo_url}" | sed -n 's|https://gitee.com/\([^/]*/[^/]*\).*|\1|p')
    
    bashio::log.info "正在获取仓库 ${repo_path} 的文件列表..."
    
    # 使用 Gitee API 获取文件列表
    local response
    response=$(curl -s -L "https://gitee.com/api/v5/repos/${repo_path}/contents" \
        -H "Content-Type: application/json" \
        -H "Accept: application/json")
    
    if [ $? -ne 0 ]; then
        bashio::log.error "访问 Gitee API 失败"
        return 1
    fi
    
    # 检查响应是否为空
    if [ -z "${response}" ]; then
        bashio::log.error "获取文件列表失败：空响应"
        return 1
    fi
    
    # 检查是否包含错误信息
    if echo "${response}" | jq -e 'if type=="object" then has("message") else false end' > /dev/null; then
        local error_msg=$(echo "${response}" | jq -r '.message')
        bashio::log.error "获取文件列表失败：${error_msg}"
        return 1
    fi
    
    # 提取 JS 文件列表
    echo "${response}" | jq -r '.[] | select(.name | endswith(".js")) | .name'
    
    return 0
}